package com.xzq.erp.domain.dto;

import com.xzq.erp.enums.MenuType;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 菜单DTO
 */
@Data
public class MenuDTO {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 菜单名称
     */
    @NotBlank(message = "菜单名称不能为空")
    private String label;

    /**
     * 菜单图标
     */
    private String icon;

    /**
     * 菜单路径
     */
    private String path;

    /**
     * 权限标识
     */
    private String permission;

    /**
     * 菜单排序
     */
    @NotNull(message = "菜单排序不能为空")
    private Integer sort;

    /**
     * 菜单状态
     */
    @NotNull(message = "菜单状态不能为空")
    @Min(value = 0, message = "菜单状态不能为空")
    @Max(value = 1, message = "菜单状态不能为空")
    private Integer status;

    /**
     * 菜单类型
     */
    @NotNull(message = "菜单类型不能为空")
    private MenuType type;

    /**
     * 历史菜单类型
     */
    private MenuType oldType;

    /**
     * 是否可用
     */
    @NotNull(message = "是否可用不能为空")
    @Min(value = 0, message = "是否可用不能为空")
    @Max(value = 1, message = "是否可用不能为空")
    private Integer visible;

    /**
     * 父菜单ID
     */
    @NotNull(message = "父菜单ID不能为空")
    private Long parentId;
} 